package com.bit.cfdi.web.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;

import com.bit.cfdi.web.domain.Giro;
import com.bit.cfdi.web.domain.Impuesto;
import com.bit.cfdi.web.domain.Negocio;

public interface ImpuestoDAO {
	
	public void save(final Impuesto impTrasladado) throws DataAccessException;
		
	public List<Impuesto> getAll() throws DataAccessException;
	
	public Impuesto getBySiglaTasa(final String sigla, final double tasa) throws DataAccessException;
	
	public List<Impuesto> getImpuestoByGiro(final Giro giro) throws DataAccessException;
	
	public List<Impuesto> getImpuestoByNegocio(final Negocio negocio) throws DataAccessException;
	
	public List<Impuesto> getImpuestosCategoria(final String categoria, 
			final String tipoImpuesto) throws DataAccessException;
	
	public Impuesto getImpuestobyGiro(final String nombre, final String sigla, 
			final Giro giro) throws DataAccessException;
	
	public Impuesto getImpuestobyNegocio(final String nombre, final String sigla, 
			final Negocio negocio) throws DataAccessException;
	
	public Impuesto getImpuestoCatalogo(final String categoria, final String tipoImpuesto,
			final String nombreImpuesto, final String siglaImpuesto) throws DataAccessException;
	
	public List<Impuesto> getImpuestoByNegSiglas(final Negocio negocio,
			final String sigla) throws DataAccessException;
	
	public List<Impuesto> getByStatusAndNegocio(final Integer status, 
			final Negocio negocio) throws DataAccessException;
 
	public List<Impuesto> getImpuestobyCategoriaNegocio(final String categoria,
			final Negocio negocio, final Integer status) throws DataAccessException;
	
	public List<Impuesto> getImpBySiglasNegocioDefault(final Negocio negocio, final String sigla,
			final double tasa, final String tipo, final String categoria) throws DataAccessException;
	
	public Impuesto getByTipoSiglasTasa(final String tipo, final String siglas, 
			final double tasa) throws DataAccessException;
	 
}